﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Domain;

namespace Service.Interface
{
    public interface INoteBookService : IService<NoteBook>
    {
        /// <summary>
        /// 添加用户默认笔记本、默认分区
        /// </summary>
        /// <param name="userInfo"></param>
        void SaveNoteBookAndArea(UserInfo userInfo);

        /// <summary>
        /// 添加用户默认笔记本、默认分区
        /// </summary>
        /// <param name="notebookName">笔记本名称</param>
        /// <param name="userID">用户ID</param>
        NoteBook SaveNoteBookAndArea(string notebookName, int userID);

        /// <summary>
        /// 获取笔记本集合
        /// </summary>
        /// <param name="userID">用户ID</param>
        /// <param name="markDelete">是否删除</param>
        /// <returns></returns>
        IList<NoteBook> LoadAllNoteBook(object userID, bool markDelete);

        /// <summary>
        /// 获取共享笔记本集合
        /// </summary>
        /// <returns></returns>
        IList<NoteBook> LoadAllShareNoteBook();

        /// <summary>
        /// 获取共享笔记本集合
        /// </summary>
        /// <param name="userID">用户ID</param>
        /// <param name="share">是否共享</param>
        /// <returns></returns>
        IList<NoteBook> LoadAllShareNoteBook(object userID, bool share);

        /// <summary>
        /// 更新笔记本是否扔进垃圾箱
        /// </summary>
        /// <param name="notebookID">笔记本ID</param>
        /// <param name="delete">是否删除</param>
        void UpdateNoteBookMarkDelete(object notebookID, bool delete);

        /// <summary>
        /// 删除垃圾箱中所有数据
        /// </summary>
        /// <param name="userID">用户ID</param>
        void DeleteAllMarkDelete(object userID);

        /// <summary>
        /// 还原垃圾箱
        /// </summary>
        /// <param name="userID">用户ID</param>
        void UpdateAllMarkDeleteEqualsTrue(object userID);

        /// <summary>
        /// 共享笔记本
        /// </summary>
        /// <param name="notebookID">笔记本ID</param>
        /// <param name="share">是否共享</param>
        void UpdateNoteBookShare(object notebookID, bool share);
    }
}
